}
// Draggable target interface used only by ThumbnailsBox
- handleDragOverInternal(source, time) {
+ handleDragOverInternal(source, actor, time) {
if (source == Main.xdndHandler) {
this.metaWorkspace.activate(time);
return DND.DragMotionResult.CONTINUE;
return DND.DragMotionResult.CONTINUE;
}
- acceptDropInternal(source, time) {
+ acceptDropInternal(source, actor, time) {
if (this.state > ThumbnailState.NORMAL)
return false;
metaWindow.change_workspace_by_index(this.metaWorkspace.index(), false);
return true;
} else if (source.app && source.app.can_open_new_window()) {
+ if (source.animateLaunchAtPos)
+ source.animateLaunchAtPos(actor.x, actor.y);
+
source.app.open_new_window(this.metaWorkspace.index());
return true;
} else if (!source.app && source.shellWorkspaceLaunch) {
}
if (this._dropWorkspace != -1)
- return this._thumbnails[this._dropWorkspace].handleDragOverInternal(source, time);
+ return this._thumbnails[this._dropWorkspace].handleDragOverInternal(source, actor, time);
else if (this._dropPlaceholderPos != -1)
return source.realWindow ? DND.DragMotionResult.MOVE_DROP : DND.DragMotionResult.COPY_DROP;
else
acceptDrop(source, actor, x, y, time) {
if (this._dropWorkspace != -1) {
- return this._thumbnails[this._dropWorkspace].acceptDropInternal(source, time);
+ return this._thumbnails[this._dropWorkspace].acceptDropInternal(source, actor, time);
} else if (this._dropPlaceholderPos != -1) {
if (!source.realWindow &&
(!source.app || !source.app.can_open_new_window()) &&
source.metaWindow.move_to_monitor(thumbMonitor);
source.metaWindow.change_workspace_by_index(newWorkspaceIndex, true);
} else if (source.app && source.app.can_open_new_window()) {
+ if (source.animateLaunchAtPos)
+ source.animateLaunchAtPos(actor.x, actor.y);
+
source.app.open_new_window(newWorkspaceIndex);
} else if (!source.app && source.shellWorkspaceLaunch) {
// While unused in our own drag sources, shellWorkspaceLaunch allows